-
It reminds me of Go.
f, err := os.open("my_file.txt")
if err != os.ERROR_NONE {
// handle error
}
defer os.close(f)
// rest of code
Definitions
-
core/os/errors.odin
Panics
-
assert.-
Can be ignored with
ODIN_DISABLE_ASSERT. -
Closes the program.
-
-
ensure.-
Cannot be ignored with
ODIN_DISABLE_ASSERT. -
Is stronger than
assert. -
Closes the program.
-
-
panic.-
Closes the program.
-
-
-
?
-
-
-
Does not close the program.
-
My Old Helpers
@(require_results)
error_assert :: proc(eval: bool, loc := #caller_location, expr := #caller_expression(eval)) -> bool {
if !eval {
log.errorf("%v(%v): %v", loc.procedure, loc.line, expr)
}
return !eval
}
// Thematically it's the same as assert.
fatal_assert :: proc(eval: bool, loc := #caller_location, expr := #caller_expression(eval)) {
if !eval {
log.fatalf("%v(%v): %v", loc.procedure, loc.line, expr)
runtime.trap()
// Crashes the app.
}
}